package com.sunyur.tailor.channel.service.inner.contract.param;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Author: HuBaoding
 * @Description:
 * @Date: Created in 11:07 2021/9/7
 */
@Data
public class CreateContractParam implements Serializable {
    //合同编码
    private String contractCode;

    //合同名称
    private String contractName;

    //生效时间
    private Long effectiveTime;

    //失效时间
    private Long expireTime;

    //合同类型编码:(BK_FRAME-框架合同 BK_SINGLE-单次合同)
    private String contractTypeCode;

    //是否框架合同 0:标准合同,1:框架合同
    private Integer frameworkContract;

    //合同金额
    private BigDecimal contractAmount;

    //币种编码
    private String currencyCode;

    //采购品类编码
    private String purchaseCategoryCode;

    //采购组织编码
    private String purchaseOrgCode;

    //采购组编码
    private String purchaseGroupCode;

    //项目编码
    private String projectCode;

    //项目名称
    private String projectName;

    //合同状态（0草稿、2待审批、4审批未通过、6未执行、8执行中、9已中止、10已失效）
    private Integer contractStatus;

    //采购商公司主体
    private List<String> purchaserSubjectCodeList;

    //供应商公司主体
    private List<String> supplierSubjectCodeList;

    //合同正文附件
    private List<FileParam> contractFileList;

    //合同双章影印件
    private List<FileParam> contactPhotocopyFileList;

    //拟稿人编码
    private String drafterCode;

    //最后更新时间
    private Long lastUpdateTime;

    //最后更新人
    private String lastUpdateDrafterCode;

    //盖章顺序1：供应商先盖章，2：采购商先盖章
    private Integer stampOrder;

    //盖章类型
    //支持多选英文逗号隔开（1：公章、2：合同章、3：法人章、4：手签章）
    private Integer stampType;

    //签署时间
    private Long signingTime;

    //是否分阶段付款1：不分阶段 2：分阶段
    private Integer stagePayment;

    //付款方式 1：银行转账、2：电汇、3：现金、4：支票、5：商业承兑汇票、6：其它
    private Integer paymentMethod;

    //付款条款编码
    private String paymentClauseCode;

    //付款条款名称
    private String paymentClauseName;

    //付款条款说明
    private String paymentClauseDesc;

    //阶段类型（0：付款比例，1：付款金额）
    private Integer stageType;

    //付款详情
    private List<ContractSettlementItemParam> contractSettlementList;

    //备注
    private String contractRemark;

    //操作人编码
    private String operatorCode;

    //采购员编码
    private String buyerCode;

    // 授权公司主体
    private  List<String>  authorizedSubjectCodes;

}
